home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
BORL_TIP
/
TI100
/
TI175.ASC
< prev
next >
Wrap
Text File
|
1991-09-11
|
26KB
|
1,057 lines
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 1/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
This handout contains updates for the following:
RUN-TIME ERROR 92 IN WINDOWX, WINDOWY AND CLIP PAGE 1
WORLD COORDINATES UPDATE PAGE 7
BAR CHART MODULE PAGE 9
POLYGON DRAWING MODULE PAGE 13
WINDOW MOVE UPDATE PAGE 18
RUN-TIME ERROR 92 IN WINDOWX, WINDOWY AND CLIP
This patch eliminates runtime error 92 in the WindowX, WindowY, and
Clip routines.
The following routines are found in the file called "KERNEL.SYS".
Change the WindowX function to read as follows:
function WindowX(x:real):integer;
var
Temp : real;
begin
Temp := AxGlb + BxGlb * x;
if Temp > MaxInt then
WindowX := MaxInt
else if Temp < $8001 then
WindowX := $8001
else
WindowX := trunc(Temp);
end;
Change the WindowY funtion to read as follows:
function WindowY(y:real):integer;
var
Temp : real;
begin
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 2/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
Temp := AyGlb + ByGlb * y;
if Temp > MaxInt then
WindowY := MaxInt
else if Temp < $8001 then
WindowY := $8001
else
WindowY := trunc(Temp);
end;
RUN-TIME ERROR IN WINDOWX, WINDOWY AND CLIP, Continued:
Change the Clip function to read as follows:
function clip(var x1,y1,x2,y2:integer):boolean;
var ix1,iy1,ix2,iy2,dummy,X1Loc,X2Loc:integer;
ClipLoc:boolean;
Temp : real;
function inside(x,xx1,xx2:integer):integer;
begin
inside:=0;
if x<xx1 then inside:=-1
else if x>xx2 then inside:=1;
end;
begin
clip:=true;
ClipLoc:=true;
if ClippingGlb then
begin
if HatchGlb then
begin
X1Loc:=X1RefGlb;
X2Loc:=X2RefGlb;
end
else
begin
X1Loc:=X1RefGlb shl 3;
X2Loc:=X2RefGlb shl 3 +7;
end;
RUN-TIME ERROR 92 IN WINDOWX, WINDOWY AND CLIP, Continued:
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 3/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
ix1:=inside(x1,X1Loc,X2Loc);
iy1:=inside(y1,Y1RefGlb,Y2RefGlb);
ix2:=inside(x2,X1Loc,X2Loc);
iy2:=inside(y2,Y1RefGlb,Y2RefGlb);
if (ix1 or ix2 or iy1 or iy2)<>0 then
begin
if x1<>x2 then
begin
if ix1<>0 then
begin
if ix1<0 then dummy:=X1Loc else dummy:=X2Loc;
if y2<>y1 then
begin { Changes start here }
Temp := (y2-y1)/(x2-x1)*(dummy-x1);
if Temp > MaxInt then
Temp := MaxInt
else if Temp < $8001 then
Temp := $8001;
y1:=y1+trunc(Temp);
end; { Changes end here }
x1:=dummy;
end;
if (ix2<>0) and (x1<>x2) then
begin
if ix2<0 then dummy:=X1Loc else dummy:=X2Loc;
if y2<>y1 then
begin { Changes start here }
Temp := (y2-y1)/(x2-x1)*(dummy-x1);
if Temp > MaxInt then
Temp := MaxInt
else if Temp < $8001 then
Temp := $8001;
y2:=y1+trunc(Temp);
end; { Changes end here }
x2:=dummy;
end;
RUN-TIME ERROR 92 IN WINDOWX, WINDOWY AND CLIP, Continued:
iy1:=inside(y1,Y1RefGlb,Y2RefGlb);
iy2:=inside(y2,Y1RefGlb,Y2RefGlb);
end;
if y1<>y2 then
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 4/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
begin
if iy1<>0 then
begin
if iy1<0 then dummy:=Y1RefGlb else dummy:=Y2RefGlb;
if x1<>x2 then
begin { Changes start here }
Temp := (x2-x1)/(y2-y1)*(dummy-y1);
if Temp > MaxInt then
Temp := MaxInt
else if Temp < $8001 then
Temp := $8001;
x1:=x1+trunc(Temp);
end; { Changes end here }
y1:=dummy;
end;
if iy2<>0 then
begin
if iy2<0 then dummy:=Y1RefGlb else dummy:=Y2RefGlb;
if x1<>x2 then
begin { Changes start here }
Temp := (x2-x1)/(y2-y1)*(dummy-y1);
if Temp > MaxInt then
Temp := MaxInt
else if Temp < $8001 then
Temp := $8001;
x2:=x1+trunc(Temp);
end; { Changes end here }
y2:=dummy;
end;
end;
RUN-TIME ERROR 92 IN WINDOWX, WINDOWY AND CLIP, Continued:
iy1:=inside(y1,Y1RefGlb,Y2RefGlb);
iy2:=inside(y2,Y1RefGlb,Y2RefGlb);
if (iy1<>0) or (iy2<>0) then ClipLoc:=false;
if ClipLoc then
begin
ix1:=inside(x1,X1Loc,X2Loc);
ix2:=inside(x2,X1Loc,X2Loc);
if (ix2<>0) or (ix1<>0) then ClipLoc:=false;
end;
clip:=ClipLoc;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 5/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
end;
end;
end;
WORLD COORDINATES
In Turbo Graphix Toolbox version 1.05A, the Y coordinates are
flipped, positive to negative. The following patches will reverse the
direction of increasing positive Y coordinates.
In KERNEL.SYS change the procedure DefineWorld to read:
procedure DefineWorld(i:integer; X_1,Y_1,X_2,Y_2:real);
begin
if ((X_1<>X_2) and (Y_1<>Y_2)) and (i in [1..MaxWorldsGlb]) then
with world[i] do
begin
x1:=X_1;y1:=Y_1;x2:=X_2;y2:=Y_2;
if i>MaxWorldGlb then MaxWorldGlb:=i;
end
else if i in [1..MaxWorldsGlb] then error(1,3)
else error(1,2);
end;
In KERNEL.SYS change the procedure ReDefineWindow to read:
procedure ReDefineWindow(i,X_1,Y_1,X_2,Y_2:integer);
begin
if (i in [1..MaxWindowsGlb]) and (X_1<=X_2) and (Y_1<=Y_2) and
(X_1>=0) and (X_2<=XScreenMaxGlb) and (Y_1>=0) and (Y_2<=YMaxGlb)
then
with window[i] do
begin
x1:=X_1;
y1:=Y_1;
x2:=X_2;
y2:=Y_2;
if i>MaxWindowGlb then MaxWindowGlb:=i;
end
else if i in [1..MaxWindowsGlb] then error(3,3)
else error(3,2);
end;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 6/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
WORLD COORDINATES, Continued:
Change the File called FINDWRLD.HGH to read:
procedure FindWorld(i:integer;
A:PlotArray;
NPoints:integer;
ScaleX,ScaleY:real);
var XMax,YMax,XMin,YMin:real;
j:integer;
xmid, ymid, xdiff, ydiff : real;
begin
NPoints:=abs(NPoints);
if NPoints>=2 then
if i in [1..MaxWorldsGlb] then
begin
XMax:=A[1,1];
YMax:=A[1,2];
XMin:=XMax;
YMin:=YMax;
for j:=2 to NPoints do
begin
if A[j,1]>XMax then XMax:=A[j,1]
else if A[j,1]<XMin then XMin:=A[j,1];
if A[j,2]>YMax then YMax:=A[j,2]
else if A[j,2]<YMin then YMin:=A[j,2];
end;
ScaleX:=abs(ScaleX);
ScaleY:=abs(ScaleY);
xdiff := xmax - xmin;
xmid := (xmax + xmin) * 0.5;
xmax := xmid + scalex * 0.5 * xdiff;
xmin := xmid - scalex * 0.5 * xdiff;
ydiff := ymax - ymin;
ymid := (ymax + ymin) * 0.5;
ymax := ymid + scaley * 0.5 * ydiff;
ymin := ymid - scaley * 0.5 * ydiff;
DefineWorld(i,XMin,YMin,XMax,YMax);
SelectWorld(i);
end
else error(7,2)
else error(7,4);
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 7/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
end;
MAKE THE FOLLOWING MODIFICATION TO THE FILE "HISTOGRM.HGH."
(***********************************************************)
(* *)
(* TURBO GRAPHIX version 1.06A *)
(* *)
(* Bar chart module *)
(* Module version 1.06A *)
(* *)
(* Copyright (C) 1985 by *)
(* BORLAND International *)
(* *)
(***********************************************************)
procedure DrawHistogram(A :PlotArray; NPoints : integer;
Hatching : boolean; HatchStyle : integer);
var
X1, X2, Y2, NPixels, Delta, NDiff, YRef, LineStyleLoc, I : integer;
Fract, S, Y, YAxis : real;
DirectModeLoc, Negative : boolean;
Wtemp : WindowType;
X1Loc, Y1Loc, X2Loc, Y2Loc : integer;
function Balance : integer;
begin
Balance := 0;
S := S + Fract;
if S >= 0.0 then
begin
S := S - 1.0;
Balance := 1;
end;
end; { Balance }
begin { DrawHistogram }
if abs(NPoints) >= 2 then
begin
X1Loc := X1Glb;
Y1Loc := Y1Glb;
X2Loc := X2Glb;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 8/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
Y2Loc := Y2Glb;
LineStyleLoc := LinestyleGlb;
SetLineStyle(0);
if AxisGlb then
BAR CHART MODULE, CONTINUED
begin
Wtemp := Window[WindowNdxGlb];
ReDefineWindow(WindowNdxGlb, X1RefGlb + 4 + X1Glb,
Y1RefGlb + 6 + Y1Glb, X2RefGlb - 2 - X2Glb, Y2RefGlb
- 14 - Y2Glb);
SelectWindow(WindowNdxGlb);
AxisGlb := true;
end;
DirectModeLoc := DirectModeGlb;
DirectModeGlb := true;
Negative := NPoints < 0;
NPoints := abs(NPoints);
NPixels := (X2RefGlb - X1RefGlb) shl 3 + 7;
Delta := NPixels div NPoints;
NDiff := NPixels - Delta * NPoints;
Fract := NDiff / NPoints;
S := -Fract;
X1 := X1RefGlb shl 3;
YRef := trunc(Y2RefGlb + Y1RefGlb - AyGlb);
if Negative then
DrawStraight(X1, X2RefGlb shl 3 + 7, YRef);
YAxis := Y1RefGlb;
if BYGlb > 0 then
YAxis := Y2RefGlb;
for I := 1 to NPoints do
begin
X2 := X1 + Delta + Balance;
Y := A[I, 2];
if not Negative then
Y := abs(Y);
<-----------------------------------|
if AxisGlb then |
Y2 := trunc(AyGlb + ByGlb * Y) |
else |-{ DELETE }
Y2 := trunc((AyGlb + ByGlb * Y) * 0.99); | { THIS }
Y2 := Y2RefGlb + Y1RefGlb - Y2; | { BLOCK }
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 9/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
<-----------------------------------|
{ ADD THE FOLLOWING LINE }
Y2 := Y2RefGlb + Y1RefGlb - (trunc(AyGlb + ByGlb * Y));
BAR CHART MODULE, CONTINUED
if not Negative then
begin
DrawLine(X1, YAxis, X1, Y2);
DrawStraight(X1, X2, Y2);
DrawLine(X2, Y2, X2, YAxis);
if Hatching then
if Odd(I) then
Hatch(X1, Y2, X2, YAxis, HatchStyle)
else
Hatch(X1, Y2, X2, YAxis, -HatchStyle);
end
else
begin
DrawLine(X1, YRef, X1, Y2);
DrawStraight(X1, X2, Y2);
DrawLine(X2, Y2, X2, YRef);
if Hatching then
if YRef - Y2 < 0 then
if Odd(I) then
Hatch(X1, YRef, X2, Y2, HatchStyle)
else
Hatch(X1, YRef, X2, Y2, -HatchStyle)
else
if Odd(I) then
Hatch(X1, Y2, X2,YRef, HatchStyle)
else
Hatch(X1, Y2, X2, YRef, -HatchStyle);
end;
X1 := X2;
end;
if AxisGlb then
begin
Window[WindowNdxGlb] := Wtemp;
SelectWindow(WindowNdxGlb);
X1Glb := X1Loc;
Y1Glb := Y1Loc;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 10/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
X2Glb := X2Loc;
Y2Glb := Y2Loc;
AxisGlb := false;
end;
DirectModeGlb := DirectModeLoc;
SetLineStyle(LineStyleLoc);
end
else
Error(19, 4);
end; { DrawHistogram }
ADD THE FOLLOWING VARIABLE TO THE FILE "TYPEDEF.SYS."
WorldNdxGlb : integer;
{ IN THE FILE CALLED "KERNEL.SYS" MODIFY THE PROCEDURE CALLED,
"SelectWorld" as follows. }
procedure SelectWorld(I : integer);
begin
if (I in [1..MaxWorldGlb]) then
with World[I] do
begin
WorldNdxGlb := I; <----------------{ ADD THIS LINE }
X1WldGlb := X1;
Y1WldGlb := Y1;
X2WldGlb := X2;
Y2WldGlb := Y2;
end
else
Error(2, 2);
end; { SelectWorld }
IN THE FILE CALLED "POLYGON.HGH" MAKE THE FOLLOWING
MODIFICATIONS.
(***********************************************************)
(* *)
(* TURBO GRAPHIX version 1.06A *)
(* *)
(* Polygon drawing module *)
(* Module version 1.06A *)
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 11/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
(* *)
(* Copyright (C) 1985 by *)
(* BORLAND International *)
(* *)
(***********************************************************)
procedure DrawPolygon(A : PlotArray;I0, NPoints, Line, Scale,
Lines : integer);
var
I, X1, X2, Y1, Y2, XOffset, YOffset,
X1RefLoc, Y1RefLoc, X2RefLoc, Y2RefLoc,
DeltaY, XOs1, XOs2, YOs1, YOs2 : integer;
AutoClip, DirectModeLoc, PlotLine, PlotSymbol : boolean;
X1Loc, Y1Loc, X2Loc, Y2Loc : integer;
Temp : real; <-------------|
Flipped : boolean; <----|----------{ ADD THESE TWO VARIABLES }
procedure DrawPointClipped(X, Y : integer);
begin
if (X1 > X1RefGlb shl 3) and (X2 < X2RefGlb shl 3 + 7) then
if (Y1 > Y1RefGlb) and (Y2 < Y2RefGlb) then
DP(X, Y);
end; { DrawPointClipped }
procedure DrawItem(X, Y : integer);
var
LineStyleLoc : integer;
begin
LineStyleLoc := LineStyleGlb;
SetLineStyle(0);
POLYGON DRAWING MODULE, CONTINUED
case Line of
2 : DrawCrossDiag(X, Y, Scale);
3, 4 : DrawSquareC(X - Scale, Y + Scale, X + Scale, Y -
Scale, (Line = 4));
5 : DrawDiamond(X, Y, Scale + 1);
6 : DrawWye(X, Y, Scale + 1);
1 : DrawCross(X, Y, Scale);
8 : DrawCircleDirect(X, Y, Scale + 1, false);
9 : begin
PlotLine := false;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 12/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
if AutoClip then
DrawPointClipped(X, Y)
else
DP(X, Y);
end;
7 : DrawStar(X, Y, Scale);
end;
SetLineStyle(LineStyleLoc);
end; { DrawItem }
begin { DrawPolygon }
<-------------------|
if not AxisGlb then |
begin |
with World[WorldNdxGlb] do |
begin |
Temp := Y1; |
Y1 := Y2; |
Y2 := Temp; |------{ ADD THIS BLOCK }
end; |
SelectWorld(WorldNdxGlb); |
SelectWindow(WindowNdxGlb); |
Flipped := true; |
end |
else |
Flipped := false; |
<-------------------|
if abs(NPoints - I0) >= 2 then
begin
X1Loc := X1Glb;
Y1Loc := Y1Glb;
X2Loc := X2Glb;
Y2Loc := Y2Glb;
DirectModeLoc := DirectModeGlb;
DirectModeGlb := true;
AutoClip := (NPoints < 0);
NPoints := abs(NPoints);
POLYGON DRAWING MODULE, CONTINUED
XOs1 := 1;
XOs2 := 1;
YOs1 := 6;
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 13/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
YOs2 := 6;
if AxisGlb then
begin
XOs1 := 4;
XOs2 := 2;
YOs1 := 6;
YOs2 := 14;
if (((X2RefGlb + 7 - XOs2 - X1RefGlb + XOs1) > (XOs1 +
XOs2) shl 1) and (Y2RefGlb - YOs2 - Y1RefGlb + YOs1 >
(YOs1 + YOs2) shl 1)) then
begin
X1RefLoc := X1RefGlb;
X1 := X1RefGlb + XOs1 + X1Glb;
Y1RefLoc := Y1RefGlb;
Y1 := Y1RefGlb + YOs1 + Y1Glb;
X2RefLoc := X2RefGlb;
X2 := X2RefGlb - XOs2 - X2Glb;
Y2RefLoc := Y2RefGlb;
Y2 := Y2RefGlb - YOs2 - Y2Glb;
ReDefineWindow(WindowNdxGlb, X1, Y1, X2, Y2);
SelectWindow(WindowNdxGlb);
AxisGlb := true;
end;
end;
PlotLine := (Line >= 0);
PlotSymbol := (Line <> 0);
Line := abs(Line);
Scale := abs(Scale);
if Lines < 0 then
DeltaY := Trunc(1.0 / (abs(Y1WldGlb) + abs(Y2WldGlb)) *
abs(Y1WldGlb) * abs(Y2RefGlb -
Y1RefGlb)) + 1
else
DeltaY := 0;
if (NPoints < 2) and MessageGlb then
Writeln('<DrawPolygon>: too few data pairs -> (NPoints) >= 2')
else
begin
X1 := WindowX(A[I0, 1]);
Y1 := Y2RefGlb + Y1RefGlb - WindowY(A[I0, 2]);
DrawItem(X1, Y1);
if Abs(Lines) = 1 then
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 14/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
POLYGON DRAWING MODULE, CONTINUED
if AutoClip then
DrawLineClipped(X1, Y2RefGlb - DeltaY, X1, Y1)
else
DrawLine(X1, Y2RefGlb - DeltaY, X1, Y1);
for I:= I0 + 1 to NPoints do
begin
X2 := WindowX(A[I, 1]);
Y2 := Y2RefGlb + Y1RefGlb - WindowY(A[I, 2]);
DrawItem(X2, Y2);
if Abs(Lines) = 1 then
if AutoClip then
DrawLineClipped(X2, Y2RefGlb - DeltaY, X2, Y2)
else
DrawLine(X2, Y2RefGlb - DeltaY, X2, Y2);
if PlotLine then
if AutoClip then
DrawLineClipped(X1, Y1, X2, Y2)
else
DrawLine(X1, Y1, X2, Y2);
X1 := X2;
Y1 := Y2;
end;
end;
if AxisGlb then
begin
ReDefineWindow(WindowNdxGlb, X1RefLoc, Y1RefLoc, X2RefLoc,
Y2RefLoc);
SelectWindow(WindowNdxGlb);
X1Glb := X1Loc;
Y1Glb := Y1Loc;
X2Glb := X2Loc;
Y2Glb := Y2Loc;
AxisGlb := false;
end;
DirectModeGlb := DirectModeLoc;
end
else
Error(18, 4);
POLYGON DRAWING MODULE, CONTINUED
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 15/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
<-------------------|
if Flipped then |
begin |
with World[WorldNdxGlb] do |
begin |
Temp := Y1; |
Y1 := Y2; |
Y2 := Temp; |------{ ADD THIS BLOCK }
end; |
SelectWorld(WorldNdxGlb); |
SelectWindow(WindowNdxGlb); |
end; |
<-------------------|
end; { DrawPolygon }
WINDOW MOVE UPDATE
The following code modifications enable the Turbo Graphix Toolbox
to properly display text after doing a move window.
In the procedure MoveVer in the file WINDOWS.SYS
Change from:
Y1RefGlb := Y1RefGlb + HeaderSizeGlb
else
Y2RefGlb := Y2RefGlb - HeaderSizeGlb;
end;
end; { MoveVer }
Change to:
Y1RefGlb := Y1RefGlb + HeaderSizeGlb
else
Y2RefGlb := Y2RefGlb - HeaderSizeGlb;
ReDefineWindow(WindowNdxGlb, X1RefGlb, Y1RefGlb, X2RefGlb,
Y2RefGlb); { addition ver. 1.06A }
SelectWindow(WindowNdxGlb); { addition ver. 1.06A }
end;
end; { MoveVer }
In the procedure MoveHor in the WINDOWS.SYS:
PRODUCT : TURBO GRAPHIX TOOLBOX NUMBER : 175
VERSION : 1.05A
OS : PC-DOS
DATE : July 8, 1986 PAGE : 16/18
TITLE : UPDATE FROM VERSION 1.05A TO 1.06A
Change from:
if Top then
Y1RefGlb := Y1RefGlb + HeaderSizeGlb
else
Y2RefGlb := Y2RefGlb - HeaderSizeGlb;
end;
end; { MoveHor }
Change to:
if Top then
Y1RefGlb := Y1RefGlb + HeaderSizeGlb
else
Y2RefGlb := Y2RefGlb - HeaderSizeGlb;
ReDefineWindow(WindowNdxGlb, X1RefGlb, Y1RefGlb, X2RefGlb,
Y2RefGlb); { addition ver. 1.06A }
SelectWindow(WindowNdxGlb); { addition ver. 1.06A }
end;
end; { MoveHor }